package com.cwl.arithmetic;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @program: data-structure
 * @description: 反转排序
 * @author: ChenWenLong
 * @create: 2019-09-10 14:23
 **/
public class ReverseSort<T> {

    /**
     * 功能描述:
     * 〈基本思想：将数组的最后一个元素与第一个元素替换，倒数第二个元素与第二个元素替换〉
     *
     * @params : [array]
     * @return : void
     * @author : cwl
     * @date : 2019/9/10 14:23
     */
    public void ReverseSort(int[] array){
        for(int i=0;i<array.length/2;i++){
            int temp=array[i];
            array[i]=array[array.length-1-i];
            array[array.length-1-i]=temp;
        }
    }

    /**
     * 功能描述: double
     * 〈〉
     *
     * @params : [array]
     * @return : void
     * @author : cwl
     * @date : 2019/9/10 14:24
     */
    public void ReverseSort(double[] array){
        for(int i=0;i<array.length/2;i++){
            double temp=array[i];
            array[i]=array[array.length-1-i];
            array[array.length-1-i]=temp;
        }
    }

    /**
     * 功能描述: long
     * 〈〉
     *
     * @params : [array]
     * @return : void
     * @author : cwl
     * @date : 2019/9/10 14:24
     */
    public void ReverseSort(long[] array){
        for(int i=0;i<array.length/2;i++){
            long temp=array[i];
            array[i]=array[array.length-1-i];
            array[array.length-1-i]=temp;
        }
    }

    /**
     * 功能描述: char
     * 〈〉
     *
     * @params : [array]
     * @return : void
     * @author : cwl
     * @date : 2019/9/10 14:24
     */
    public void ReverseSort(char[] array){
        for(int i=0;i<array.length/2;i++){
            char temp=array[i];
            array[i]=array[array.length-1-i];
            array[array.length-1-i]=temp;
        }
    }

    /**
     * 功能描述: String
     * 〈〉
     *
     * @params : [array]
     * @return : void
     * @author : cwl
     * @date : 2019/9/10 14:26
     */
    public void ReverseSort(String[] array){
        for(int i=0;i<array.length/2;i++){
            String temp=array[i];
            array[i]=array[array.length-1-i];
            array[array.length-1-i]=temp;
        }
    }

    /**
     * 功能描述: BigDecimal
     * 〈〉
     *
     * @params : [array]
     * @return : void
     * @author : cwl
     * @date : 2019/9/10 14:27
     */
    public void ReverseSort(BigDecimal[] array){
        for(int i=0;i<array.length/2;i++){
            BigDecimal temp=array[i];
            array[i]=array[array.length-1-i];
            array[array.length-1-i]=temp;
        }
    }

    /**
     * 功能描述:
     * 〈〉
     *
     * @params : [array]
     * @return : void
     * @author : cwl
     * @date : 2019/9/10 14:27
     */
    public void ReverseSort(Date[] array){
        for(int i=0;i<array.length/2;i++){
            Date temp=array[i];
            array[i]=array[array.length-1-i];
            array[array.length-1-i]=temp;
        }
    }

    /**
     * 功能描述:
     * 〈任意类型进行反转排序〉
     *
     * @params : [array]
     * @return : void
     * @author : cwl
     * @date : 2019/9/10 14:28
     */
    public void ReverseSort(T[] array){
        for(int i=0;i<array.length/2;i++){
            T temp=array[i];
            array[i]=array[array.length-1-i];
            array[array.length-1-i]=temp;
        }
    }
}
